package 二叉树相关问题.BST;

public class 前序遍历构造二叉搜索树 {

        public TreeNode bstFromPreorder(int[] preorder) {
            return method(preorder,0,preorder.length-1);
        }

        private TreeNode method(int[] preorder, int start, int end) {
            if (start>end)
                return null;
            int index=start;
            // for (int i = start; i <= end; i++) {
            //     if (preorder[i]>preorder[start]){
            //         index=i;
            //     }
            // }
            while(index <= end && preorder[index] <= preorder[start]) {
                index++;
            }
            TreeNode root = new TreeNode(preorder[start]);
            root.left=method(preorder,start+1,index-1);
            root.right=method(preorder,index,end);
            return root;
        }
    }
